package jwj8508;

public class J24_CompareObject {
	
	// 객체 비교하기
	// "내 차 색깔과 당신 차 색깔이 똑같다"
	// "내 차와 당신 차가 똑같다" (상태, 색상, 종류)	
	// 클래스의 객체는 실제 데이터가 저장된 주소를 가지고 있기 때문에
	// 단순비교 ==로는 객체가 같은지 알 수 없음
	// 자바에서는 기본적으로 객체를 비교할때에는 equals, hashCode메서드를 이용함
	// 또한 유틸리티 클래스인 Comparable, Comparator등을 이용하기도 함
	
	// 참고로 String객체를 비교할 때에는 equals메서드를 이용하여 비교해야 함
	
	public static void main(String[] args) {
		CarVO myCar = new CarVO("새것", "빨강", "스포츠카");
		CarVO yourCar = new CarVO("새것", "빨강", "스포츠카");
		
		System.out.println(myCar);
		System.out.println(yourCar);
		
		if (myCar == yourCar)
			System.out.println("같음");
		else
			System.out.println("다름");
		
		/* --------------------------------------------- */
		
		if (myCar.color == yourCar.color)
			System.out.println("같음");
		else
			System.out.println("다름");
		
		/* --------------------------------------------- */
		
		String char1 = "가";
		String char2 = "가";
		
		if (char1 == char2)
			System.out.println("char1, char2 같음");
		else
			System.out.println("char1, char2 다름");
		
		/* --------------------------------------------- */
		
		String char3 = "나";
		String char4 = new String("나");
		
		if (char3 == char4)
			System.out.println("char3, char4 같음");
		else
			System.out.println("char3, char4 다름");

		if (char3.equals(char4))
			System.out.println("char3, char4 같음");
		else
			System.out.println("char3, char4 다름");
		
		/* --------------------------------------------- */
		
		String char5 = new String("다");
		String char6 = new String("다");
		
		if (char5 == char6)
			System.out.println("char5, char6 같음");

		if (char5.equals(char6))
			System.out.println("char5, char6 같음");
		
		
	}

} // J24_


class CarVO {
	public String status;
	public String color;
	public String type;
	
	public CarVO() {}
	
	public CarVO(String status, String color, String type) {
		this.status = status;
		this.color = color;
		this.type = type;
	}

}

